package com.example.demo_one.kotlin

fun main(){
    // 1. 创建对象
    val man = Users("李思思", 181)
    man.show()

    val woman = User("张三", 18)
    woman.show()
}

// 1. 显式主构造函数
class Users constructor(var name:String, var age:Int) {
    // 实例化对象成功后一定会执行init代码块
    // 作用: 初始化对象, 对参数进行类型校验
    init {
        println("来了, 老弟")
        require(age > 0){ "年龄必须大于0" }
        require(name.isNotEmpty()){ "姓名不能为空" }
    }
    fun show(){
        println("name: $name, age: $age")
    }
}

// 2. 隐式主构造函数
class User(var name:String, var age:Int) {

   // 实例化对象成功后一定会执行init代码块
   init {
       println("来了, 老哥")
   }
   fun show(){
       println("name: $name, age: $age")
   }

}